/*
 * sort.h
 *
 *  Created on: 2020��1��3��
 *      Author: Administrator
 */

#ifndef SORT_H_
#define SORT_H_

/**
 * 排序算法（从小到大）
 * 插入类排序
 * 交换类排序
 * 选择类排序
 */
/**
 * 直接插入排序（基于顺序查找）
 */
void insert_sort(int* array, int length);
/**
 * 折半插入排序（基于折半查找）
 */
void bin_insert_sort(int* array, int length);
/**
 * 冒泡排序
 */
void bubble_sort(int* array, int length);
/**
 * 快速排序
 */
void quick_sort(int* array, int low, int high);
/**
 * 快速排序分区
 */
int partition(int* array, int low, int high);
/**
 * 选择排序
 */
void select_sort(int* array, int length);
/**
 * 归并排序
 */
void merge_sort(int* array, int length);
/**
 * 排序子序列
 * 采用分治策略对所在范围的数组进行排序
 */
void m_sort(int* array, int low, int high);
/**
 * 合并两个有序列表
 * 有序列表均存在array数组中，以mid作为分界
 * array[low...mid]，array[mid+1...high]
 */
void merge(int* array, int low, int mid, int high);

#endif /* SORT_H_ */
